home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
internet
/
irc_i_dodatki
/
eggdrop
/
eggdrop11.lha
/
README
< prev
next >
Wrap
Text File
|
1997-01-15
|
18KB
|
359 lines
_
___ __ _ __ _ __| |_ __ ___ _ __
/ _ \ / _` |/ _` |/ _` | '__|/ _ \| '_ \
| __/| (_| | (_| | (_| | | | (_) | |_) |
\___| \__, |\__, |\__,_|_| \___/| .__/
|___/ |___/ |_| v1.1 BETA
Please at least SKIM this document before asking questions.
(1) WHAT IS EGGDROP?
Eggdrop is an IRC bot, written in C. If you don't know what IRC is,
this is probably not whatever you're looking for! Eggdrop, being a
bot, sits on a channel and takes protective measures: to keep the
channel from being taken over (in the few ways that anything CAN),
to recognize banished users or sites and reject them, to recognize
priveledged users and let them gain ops, etc.
One of the more unique features of eggdrop is its "party line",
accessable via DCC chat, which allows you to talk to other people
lag-free. Consider it a multi-way DCC chat, or a miniature IRC
(complete with channels). You can link up with other bots and
expand the party line until it actually becomes something very much
like IRC, in fact.
Eggdrop is always being improved and adjusted because the author
is never really satisfied with it. In fact, it existed for several
years as v0.7 - v0.9 before finally going 1.0. A valiant effort has
been made to chase down and destroy bugs. It is definitely nowhere
near as buggy as the ircII client. Crashes should be rare and
surprising (but aren't they always? [surprising anyway]).
This README file contains information about how to get eggdrop, how to
quickly compile the bot, what you may need to do when upgrading from
older versions, a list of frequently asked questions about compiling,
how to set up a crontab, some boring legal stuff, info about the mailing
list (a great place to ask questions), and a complaint/explanation about
the lack of documentation.
The preliminary documentation is in "eggdrop.doc" and is intended to be
read after you have eggdrop compiled and set up. It's changing all the
time and getting new sections added. If you'd like to write a section
or just indicate some part that needs improving, please do!
(2) HOW TO GET EGGDROP
Before you can compile eggdrop, you need to have Tcl installed on
your system. Most systems should have Tcl on them by now -- you
can check by trying the command "tclsh". If it works, you will be
given a "%" prompt, and you can type "exit" to exit the program.
That means Tcl is on your system. If tclsh doesn't load, then Tcl
probably isn't on your system, and you will need to ftp it. The
best ftp site is:
ftp://ftp.sunlabs.com/pub/tcl
The current version as of this writing is 7.5. Right now, eggdrop
has only minimal support for the new 7.5 features and I haven't
tested them, but feedback is welcome.
Tcl comes with the Slackware distribution of Linux. HOWEVER, the
one that comes on Slackware 3.0 is goofed up and you'll have to
re-install it for yourself to get it working.
The eggdrop code is available via anonymous FTP at:
ftp://ftp.sodre.net/pub/eggdrop/
ftp://ftp.crafti.com.au/
ftp://ftp.eagle.ovik.se/pub/unix/irc/ftp_sodre_net/
ftp://ftp.ntis.com/pub/irc/DeadelviS/bot/c/eggdrop/
There is also a web page that is updated pretty frequently, and
always has links to the latest few versions, as well as to botnets
and other sources of info:
http://www.valuserve.com/~robey/eggdrop/
http://www.sodre.net/eggdrop/
There are several eggdrop Tcl script libraries out there. I have
pointers to a few on the web page.
(3) QUICK STARTUP
Eggdrop, while not covered under the GPL (for various reasons), does
use the GNU autoconfigure scripts, to make things easier.
1. Type './configure' from the eggdrop directory. That script will
determine how your system is set up, and figure out how to compile
eggdrop (I hope). It will also try to find Tcl, which is required
to compile.
2. Edit 'src/eggdrop.h' to your liking if you're the hacker type.
(THIS STEP IS OPTIONAL.)
3. Type 'make' from the eggdrop directory. If you want your bot to run
from it's own directory (highly recommended), type 'putegg <dir>' to
copy the main files there.
4. Edit 'lamestbot' (a sample script) and rename it to something you can
remember (like "mybot"). Move it to your bot's directory.
5. Start the bot with the "-m" option to create a user file, ie
'eggdrop -m lamestbot'.
6. When starting the bot in the future, drop the "-m". If you compiled
with Tcl and have edited your bot script correctly, you can type:
chmod u+x <my-bot-script-name>
and from then on, you will be able to run your bot directly from the
script. So you can just type "lamestbot" from your shell prompt to
start up your bot. For this to work, the top line of your script MUST
contain the correct path to eggdrop.
(Please don't call your bot "lamestbot". It's, well... lame.)
7. It's advisable to run your bot via crontab so that it will automatic-
ally restart if the machine goes down or (heaven forfend) the bot
should crash. Look at the file 'botchk' for a great start with cron-
tabbing the bot.
(4) UPGRADING
There are many major changes between v0.9 and v1.0 so PAY ATTENTION
to this part if you have a v0.9 bot already. If you're just starting
out, you can skip this section.
to 1.0g:
* If you run sharebots, you will need to upgrade them all at the
same time because of the new userfile format. Older bots will
be able to link in, but will not get or send a userfile.
from 0.9 to 1.0:
* You will have to make a new config file. Because eggdrop is now
multi-channel, whole sections of the config file have changed --
particularly the part where you define the channels. My advice is
to just start over from the 'lamestbot' example config, and use
your old config as a guide. It might be a pain, but it should
only take 5-10 minutes.
* non-Tcl bots aren't supported any more: upgrade or stick with 0.9
* many commands have changed somewhat -- for example, commands like
'.say' and '.kickban' now operate on the user's current console
channel (which can be changed with '.console')
* virtually every Tcl script for 0.9 will have to be changed to work
with 1.0 -- many scripts already have 1.0 versions as of this
writing, and the file "tcl-commands.doc" tells how to convert your
own scripts
* the +a and +h flags for bots no longer have their old meanings; the
new meanings are:
+h preferred (hub) link -- these bots will be tried first until
one +h is directly linked in, at which point no more auto-
connects are tried. if a +h bot suddenly becomes available
when none were available before, all interfering links are
DROPPED, and the connection to the +h bot is made
+a alternate link -- if no hub bots can be linked, then these
bots will be tried until at least one is linked in. they're
just an alternate connection, and could be dropped once a +h
link can be made
the new meanings for the flags make botnet connecting more reliable,
and make it easier to structure a "default" layout that will maintain
itself even if nobody's around.
* sharebots: be sure to upgrade all sharebots at the same time -- 1.0
bots will be unable to transfer userfiles with 0.9 bots (the userlist
is sent through DCC now, for speed)
* helpbot support and 'ntalk.irc' support were removed, since both were
effectively useless any more (a new 'ntalk.irc' has been included
with this distribution, which does not require bot support any more)
* the file system will rebuild itself as you use it (IF you use it)
but this should be transparent
(5) FREQUENTLY ASKED QUESTIONS
1. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
(1) Run eggdrop with the "-m" option (ie, "eggdrop -m mybot").
(2) Go to IRC and send "hello" to your bot (ie, "/msg mybot hello").
(3) You will become a master on your bot. You can leave the bot
running (nobody else will become a master if they say "hello"),
but in the future, don't use the "-m" option when running the bot.
2. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR HOSTNAME!"
Your machine is set up strangely, and eggdrop can't figure out its
network hostname. You can get around this by setting an environment
variable called HOSTNAME. In sh or ksh:
$ HOSTNAME=myhost.domain.edu
$ export HOSTNAME
In csh or tcsh:
% setenv HOSTNAME myhost.domain.edu
It should work after that. You may want to bug your system admini-
strator to set up her /etc/hosts file correctly, or add those above
commands to your '.login' file (sh or ksh: '.profile').
3. WHAT THE HECK IS TCL?
Tcl is a scripting language written by John Ousterhout. It's much
better than most "in-built" script langauges (like the one in ircII)
and is meant to be linked with anything needing a script langauge.
So I linked it with eggdrop.
The file "tcl-commands.doc" in the eggdrop directory contains a list
of the commands added to Tcl by eggdrop. Another file, "lamestbot",
is a script file meant to be executed from the command line. It starts
up an eggdrop bot called "LamestBot" which sits on channel #lamest.
There are also several example scripts in the script/ directory, and
there are gobs of scripts floating around on the ftp sites if you
like working by example (which is typically the best way).
4. MY USER LIST IS VERY LARGE. HOW CAN I CUT IT DOWN?
There is a Tcl script called "weed" distributed with eggdrop. To use
it, type:
tclsh weed
It will give you a list of options for weeding out your userlist. You
can erase users who haven't been on the channel within a specified
number of days, or erase any ops who haven't set a password yet, etc.
Lots of options.
5. MY BOT DIES AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE
SIGNAL". WHAT DOES THAT MEAN AND CAN I PREVENT IT?
There's nothing you can do to prevent it. It means the system admini-
stator is killing the eggdrop process. Most of the time, it's an
automatic thing that happens when the system is being rebooted -- so
it's harmless, and if you have a crontab running, the bot will get
restarted when the system is back online. Occassionally the system
administrator will kill the bot manually -- for example, if he/she
doesn't want bots running on the system.
6. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL 11"!
This happens on Linux machines which have recently been converted
to ELF by upgrading to Slackware 3.0. Apparently Slackware 3.0
comes with a non-ELF (a.out) Tcl library, and the compiler doesn't
handle that well. (It should give you an error; instead it barfs.)
Fixing it is tricky because even if you recompile libtcl.a, the
linker will most likely find the "bad" one first, and your work
will be in vain.
Here's a fix that's been floating around on the eggdrop list:
1. Recompile 'libtcl.a' for yourself, to make sure an ELF library
is created.
2. Copy it into your eggdrop/src directory, naming it 'libtcl2.a'.
3. Edit the Makefile and change the line that says '-L/usr/lib -ltcl'
to '-L. -ltcl2'.
4. Recompile eggdrop.
Also send hate-mail to the Slackware guy telling him to stop fucking
up the libraries. He seemed to assume that everyone would still
want to compile old-style (a.out) binaries. As far as I know, only
cruddy old Netscape still uses that.
7. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I
CAN USE TO TAKE THEIR BOT DOWN?
No, there have never been any backdoors and there never will be,
so please stop asking. Every once in a while, someone finds a way
to exploit a bug in eggdrop, but I fix these bugs as soon as I find
out about them. If you want to bring down someone else's bot, you
will not have my help.
(6) SETTING UP A CRONTAB
Eggdrop has become more stable with time, thanks mostly to people detail-
ing bugs to me and helping me find places where it crashes. However, I'm
sure there are still a few places where things aren't perfect -- that's
how life works. Also, most systems go down from time to time. These
things cause your bot to disappear from IRC, and you have to restart it.
I have included a csh script called 'botchk' which will help keep the bot
online. It will make the machine check every ten minutes to make sure
your bot is still running. To use it, you have to add a line to your
crontab. First, edit 'botchk' and change the directory and command line
parameters so that it will be able to start up your bot. Then, add this
line to your crontab:
0,10,20,30,40,50 * * * * /home/mydir/botchk
Naturally, you need to change the path to the correct path for botchk. If
you've never used crontab before, here is a simple way to add that line:
Create a new file called 'mycron' and put the above line into it. Then,
from your shell prompt, type
% crontab mycron
That will create a new crontab entry for you, with a line that runs botchk
every ten minutes. Botchk will then restart the bot when necessary (and
send you email informing you).
(7) BORING LEGAL STUFF
The eggdrop bot is copyright (c) by Robey Pointer. As of January 1997,
eggdrop is distributed according to the GNU General Public License.
There should be a copy of this license in the file COPYING. If not,
write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
MA 02139, USA.
Releases previous to 1.0m were made using a different licensing scheme.
You may, at your option, use the GNU General Public License on those
versions (instead of the license packaged with them) with my blessing.
For any versions bearing a copyright date of 1997 or later, you have
no choice -- you must use the GNU General Public License.
The files "match.c", "net.c", and "blowfish.c" are exempt from the above
restrictions. "match.c" is original code by Chris Fuller (email:
crf@cfox.bchs.uh.edu) and has been placed by him into the public domain.
"net.c" is by me and I also choose to place it in the public domain.
"blowfish.c" is by various sources and is in the public domain. All 3
files contain useful functions that could easily be ported to other
applications -- the other parts of the bot generally don't.
Tcl is by John Ousterhout and is in no way affiliated with eggdrop,
and has its own set of copyrights and whatnots, I'm sure.
There is no warranty, implied or whatever. You use this software at
your own risk, no matter what purpose you put it to. You didn't pay
for it, so don't expect magic.
(8) MAILING LIST
Yes, there is a mailing list. The address has changed recently,
though, and (thank the heavens) I don't have to maintain it any more.
To subscribe, send email to:
majordomo@sodre.net
In the body of the message, put "subscribe eggdrop".
I tend to get a lot of mail about this thing, so please don't flood
my mailbox. However if you have something urgent and private to tell
me, I can be reached at
robey@netcom.com
WARNING: If you send me private email about something that they've
discussed on the mailing list, I'll probably just delete it. So don't
ask me simple questions that waste my time, that probably anyone on
the mailing list could answer. There are a lot of people on there
who have used the bot for a year or more, and know almost as much
about the bot as I do. (Some of them probably know more...)
(9) DOCUMENTATION
I've been trying hard to keep the online documentation (in the help/
directory) fairly up-to-date. It should be complete now; you can browse
through there for some handy tips. Please let me know if you find any
help files that are incorrect or confusing!
I know that a unified documentation would REALLY BE HELPFUL. All I can
say is... I've been pretty busy. I just graduated in December and I've
spent the past several months getting settled into the bay area, getting
a job, etc. So I haven't even had much time to keep updating the bot.
But I AM working on it, bit by bit. Stage one was finishing the online
docs. Now I'm slowly adding bits to the unified documentation.
I have seven sections written so far, and I'm not sure how helpful
they are, but you can find them in "eggdrop.doc" for now. Comments and
suggestions would be welcome!
This is the end. Wow. Someone actually read this far.